/* AJAX //http://www.javarss.com/ajax/j2ee-ajax.html */ // Inicializace AJAXu function ajax_init(){ if (window.XMLHttpRequest) { AJAXForms = new XMLHttpRequest(); // branch for IE/Windows ActiveX version } // end if else if (window.ActiveXObject) { AJAXForms = new ActiveXObject("Microsoft.XMLHTTP"); } // end else } // end function // --- // volani js funkce 'function_name' pres ajax function processRequest(function_name) { if ( typeof( window["AJAXForms"]) != "undefined" ) { if (AJAXForms.readyState == 4) { if (AJAXForms.status == 200) { if (function_name == "") { function_name = "processChange"; } // end if eval(function_name + "();"); } // end if else { /* alert ( "Not able to retrieve description" ); */ } // end else } // end if } // end if } // end function // --- // ajaxovy submit - ilustracni priklad - aplikacni funkce se z teto funkce rozpiruje a prejmenuje function ajax_submit() { // inicilizace ajax_init(); // sestaveni parametru pro volani - pozor v php skriptu (definovanem v promenne "url"), ktery tyto parametry nacita z POST je nutne pouzit "nasi" php funkci "unescape_js()" parameters = ""; // automaticke nacteni dat z vybraneho formulare ve formatu pro URL vcetne prevedeni na escape sekvence pokud je to vyzadovano queryString = get_fullformquery("ass_form"); // doplneni dalsich parametru - pokud by se posilal text (mezery, spec. znaky a atd..), musel by osetrit js funkci "escape()" => ("napis=" + escape("český nadpis") ) parameters = parameters + "group=ass"; parameters = parameters + queryString; // doplneni parametru z fomulare // --- // sestaveni url pro php skript, ktery bude vracet (tisknout! => echo) data // pozor v php skriptu (definovanem v promenne "url"), ktery tyto parametry nacita z POST je nutne pouzit "nasi" php funkci "unescape_js()" // bylo by dobre, aby se vsechny ajaxove vystupy osetrovali na jednom miste (ajax_action.php) - rozliseni podle parametru "group". url = get_wwwroot() + "/ecp_core/modules/ajax/ajax_action.php"; // --- // 1. moznost odesilat data postem /* AJAXForms.onreadystatechange = function () { processRequest("processChange"); }; // parametr "processChange" se nahradi nazvem vlastni funkce ktera osetri vystup AJAXForms.open('POST', url, true); AJAXForms.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); AJAXForms.setRequestHeader("Content-length", parameters.length); AJAXForms.setRequestHeader("Connection", "close"); AJAXForms.send(parameters); */ // 2. moznost /* AJAXForms.onreadystatechange = function () { processRequest("processChange"); } ; // parametr "processChange" se nahradi nazvem vlastni funkce ktera osetri vystup AJAXForms.open("POST", get_wwwroot() + "/ecp_core/modules/ajax/ajax_action.php?" + parameters); AJAXForms.send(null); */ // POZOR AJAX vraci vzdy jediny vystup "AJAXForms.responseText". } // end function // --- // implicitni osetreni aktualizace html kodu daty z ajaxe (AJAXForms.responseText) - ilustracni function processChange() { alert(AJAXForms.responseText); // ilustracni priklad pouziti s naplnenim divu "asistent" vygenerovanymi daty a naslednym, podminenym, refocusem na input /* var res = ge("asistent"); res.innerHTML = AJAXForms.responseText; if (ass_last_control_id != 0) { refocus("ass_form", ge_n(ass_last_control_id)); } // end if */ } // end function // --- /* // --- */